package com.dinetech.ejecutor;

import java.util.ArrayList;

import com.dinetech.dao.SpinnerVariosAdapter;
import com.dinetech.dao.WSProgramacion;
import com.dinetech.ejecutor.R.id;
import com.dinetech.entidades.Session;
import com.dinetech.entidades.SpinnerVarios;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class DetalleActividad extends Activity implements OnClickListener {

	
	private int idProgDet, idPersonalcbx, tipoAct;
	String fechaAct, idProg, nomUsuario, Guardado, tipoLugar, codAct, nombreActividad, estadoActividad;
	TextView lblFecha;
	TextView lblHora;
	TextView lblNomAct;
	TextView txtObservacion;
	TextView lblRecomendacion;
	Spinner cbxResp;
	Button btn;
	
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_detalle_actividad);
		//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
		
		lblFecha  = (TextView )findViewById(R.id.lblFechaActividad);
		lblHora   = (TextView)findViewById(R.id.lblHoraActividad);
		lblNomAct = (TextView)findViewById(R.id.lblNombreActividad);
		txtObservacion = (TextView)findViewById(R.id.txtComentarioActividad); 
		cbxResp = (Spinner)findViewById(id.cbxResponsableActividad);
		btn = (Button)findViewById(R.id.btnProgramacion);
		lblRecomendacion = (TextView)findViewById(R.id.txtRecomendaciones);
				
		//Cargando datos de la actividad 
		Bundle obtenerDatos = getIntent().getExtras();
		
		idProg =obtenerDatos.getString("IdProgramacion");
		idPersonalcbx =obtenerDatos.getInt("Usuario");
		fechaAct =obtenerDatos.getString("FechaAct");
		lblFecha.setText(fechaAct);
		lblHora.setText(obtenerDatos.getString("HI") + " - " + obtenerDatos.getString("HF") );
		lblNomAct.setText(obtenerDatos.getString("NombreDeActividad"));
		nombreActividad = obtenerDatos.getString("NombreDeActividad");
		txtObservacion.setText(obtenerDatos.getString("Obs"));
		idProgDet = obtenerDatos.getInt("IdProgramacionDetalle");
		tipoLugar = obtenerDatos.getString("CodTipoLugar");
		tipoAct = obtenerDatos.getInt("TipoACtividad");
		codAct = obtenerDatos.getString("CodActividad");	
		estadoActividad = obtenerDatos.getString("EstadoActividad");
		
		if(estadoActividad.equals("T")){
			btn.setText("Actualizar Actividad");
		}

		runOnUiThread(new Runnable() {
			
			@Override
			public void run() {					
				new listarDetActividad().execute(tipoLugar, idProg);
			}
		});
		
		Session s3= Session.getInstance();
		llenarResponsableWcf(s3.getLISTA_RESPONSABLE());
		btn.setOnClickListener(this);
		btn.setFocusableInTouchMode(true);
		btn.requestFocus();

		
	}

	@Override
	public void onConfigurationChanged(Configuration newConfig) {		
		super.onConfigurationChanged(newConfig);
	}

	public void onClick(View v){
	     		
		 new Thread(new Runnable() {
			
			@Override
			public void run() {
				new actualizarActividad().execute();
				
			}
		}).start();

	}				
		
	private class actualizarActividad extends AsyncTask<String, Void, String>{
		

		@Override
	    protected String doInBackground(String... urls) {
			
	    	WSProgramacion ws2= new WSProgramacion();	    	
	    	String rpt="";	    		    		    	
	    	rpt = ws2.actualizarActividad(idProgDet, idPersonalcbx , txtObservacion.getText().toString());
	    	
	    	return rpt;
	        	
	    }

	    @Override
	    protected void onPostExecute(String resultadoWS) {
	        super.onPostExecute(resultadoWS);	
	        
	        if(resultadoWS.equals("OK")){
		      
				Intent intent = getIntent();
		    	intent.putExtra("Resultado", nombreActividad);
		    	setResult(RESULT_OK, intent); 
	        	finish();
	        	
	        }
	        else{
	        	Toast.makeText(getApplicationContext(), resultadoWS.toString(), Toast.LENGTH_LONG).show();
	        }
	        
	    }
	}
	
	private void llenarResponsableWcf(ArrayList<SpinnerVarios> act){				
				
		SpinnerVariosAdapter adaptador = new SpinnerVariosAdapter(this, act);
		cbxResp.setAdapter(adaptador);
		cbxResp.setOnItemSelectedListener(new SpinnerListener());
		
		for(int i=0; i <  adaptador.getCount(); i++){
		 int idR= act.get(i).getId();
			if( idR == idPersonalcbx){
				cbxResp.setSelection(i);
				
			}
		}
		
		
				
	}
	
	private class listarDetActividad extends AsyncTask<String, Void, ArrayList<String>>{
		
		String rpt;

		@Override
	    protected ArrayList<String> doInBackground(String... urls) {
			
			
			
	    	WSProgramacion ws= new WSProgramacion();
	    	ArrayList<String> listview;	 
	    	
	    	if(urls[0].equals("01"))
	    	{
	    		listview = ws.listarDetGalpon(Integer.parseInt(urls[1]));
	    	}
	    	else{
	    		listview = ws.listarDetPozasJaulas(Integer.parseInt(urls[1]));
	    	}
	    		  
	    		    		    		    	
	    	rpt = ws.mostrarRecomendacion(tipoAct, codAct, idProgDet );
	    	
	    	return listview;
	        	
	    }

	    @Override
	    protected void onPostExecute(ArrayList<String> resultadoWS) {
	        super.onPostExecute(resultadoWS);	
	        
	        lblRecomendacion.setText(rpt);
	        
	        ListView ld = (ListView)findViewById(R.id.listViewUbicDeActividad);
	        
	        ArrayAdapter<String> adapter = new ArrayAdapter<String>(DetalleActividad.this, android.R.layout.simple_list_item_1, resultadoWS);
	        ld.setAdapter(adapter);
	        
	    }
	}

    public class SpinnerListener implements OnItemSelectedListener {
	      
	        public void onItemSelected(AdapterView<?> parent,
	            View view, int pos, long id) {
            
	            int convert=Integer.parseInt( Long.toString(id));
	            idPersonalcbx= convert;	            	         
	        }

			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
				
				
			}
	 }

	
    @Override
	public void finish() {		
		super.finish();
		
	}
    
    
}

